package com.zjsru.plan2024.oneday;

/**
 * 3175. 找到连续赢 K 场比赛的第一位玩家
 *
 * @author cookLee
 * @Author: cookLee
 * @Date: 2024-10-24
 * @date 2024/10/24
 */
public class FindWinningPlayer {

    /**
     * 主
     * \
     * 输入：skills = [4,2,6,3,9], k = 2
     * 输出：2
     * 解释：
     * 一开始，队列里的玩家为 [0,1,2,3,4] 。比赛过程如下：
     * 玩家 0 和 1 进行一场比赛，玩家 0 的技能等级高于玩家 1 ，玩家 0 胜出，队列变为 [0,2,3,4,1] 。
     * 玩家 0 和 2 进行一场比赛，玩家 2 的技能等级高于玩家 0 ，玩家 2 胜出，队列变为 [2,3,4,1,0] 。
     * 玩家 2 和 3 进行一场比赛，玩家 2 的技能等级高于玩家 3 ，玩家 2 胜出，队列变为 [2,4,1,0,3] 。
     * 玩家 2 连续赢了 k = 2 场比赛，所以赢家是玩家 2 。
     * \
     * @param args args
     */
    public static void main(String[] args) {
        FindWinningPlayer findWinningPlayer = new FindWinningPlayer();
        int[] skills = new int[]{4,2,6,3,9};
        System.out.println(findWinningPlayer.findWinningPlayer(skills, 2));
    }

    /**
     * 查找获胜玩家
     *
     * @param skills 技能
     * @param k      k
     * @return int
     */
    public int findWinningPlayer(int[] skills, int k) {
        int len = skills.length;
        //胜利的次数
        int win = 0;
        //胜利次数最多的玩家下标
        int maxIndex = 0;
        for (int i = 1; i < len && win < k; i++) {
            if (skills[i] > skills[maxIndex]) {
                maxIndex = i;
                win = 0;
            }
            win++;
        }
        return maxIndex;
    }

}
